package com.ynet.middleground.user.dto;

import java.io.Serializable;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @author liulx
 * @description e签宝查询认证详情传输对象
 * @date 2019-11-13 17:00
 */
@Data
@ApiModel(value = "e签宝查询认证详情传输对象", description = "e签宝查询认证详情传输对象")
public class EsignValidDetailDTO implements Serializable {

    private static final long serialVersionUID = -3104336577796495175L;

    @ApiModelProperty(value = "认证流程ID", notes = "认证流程ID")
    private String flowId;

    @ApiModelProperty(value = "认证流程状态\n" + "INIT 已发起，该状态下 e 签宝不会计费\n" + "ING 进行中\n" + "SUCCESS 已成功\n" + "FAIL 已失败",
        notes = "认证流程状态\n" + "INIT 已发起，该状态下 e 签宝不会计费\n" + "ING 进行中\n" + "SUCCESS 已成功\n" + "FAIL 已失败")
    private String status;

    @ApiModelProperty(value = "认证主体类型，INDIVIDUAL 个人,ORGANIZATION 组织机构",
        notes = "认证主体类型，INDIVIDUAL 个人,ORGANIZATION 组织机构")
    private String objectType;

    @ApiModelProperty(value = "流程创建时间", notes = "流程创建时间")
    private Long startTime;

    @ApiModelProperty(value = "流程结束时间", notes = "流程结束时间")
    private Long endTime;

    @ApiModelProperty(value = "认证失败时的原因", notes = "认证失败时的原因")
    private String failReason;

    @ApiModelProperty(value = "实名认证所使用的认证类型",
        notes = "实名认证所使用的认证类型\n" + "个人实名认证场景：\n" + "INDIVIDUAL_TELECOM_3_FACTOR 个人运营商三要素\n"
            + "INDIVIDUAL_BANKCARD_4_FACTOR 个人银行卡四要素\n" + "INDIVIDUAL_ARTIFICIAL 个人人工实名\n"
            + "FACEAUTH_ZMXY 个人人脸识别：支付宝刷脸\n" + "FACEAUTH_TECENT_CLOUD 个人人脸识别：微众刷脸\n" + "FACEAUTH_ESIGN 个人人脸识别：e 签宝刷脸\n"
            + "FACEAUTH_WE_CHAT_FACE 个人人脸识别：微信小程序刷脸\n" + "企业实名认证场景：\n" + "ORGANIZATION_INFO_AUTH 企业信息比对（企业三要素或四要素）\n"
            + "ORGANIZATION_TRANSFER_RANDOM_AMOUNT 随机金额打款校验\n" + "ORGANIZATION_REVERSE_PAYMENT 企业反向打款\n"
            + "ORGANIZATION_ZMXY 企业芝麻信用认证\n" + "LEGAL_REP_SIGN_AUTHORIZE 企业法定代表人签署授权认证\n"
            + "ORGANIZATION_ARTIFICIAL 企业人工实名\n" + "LEGAL_REP_AUTH 法定代表人认证")
    private String authType;

    @ApiModelProperty(value = "企业实名认证中，经办人所使用的认证类型（只有企业认证流程才会返回）",
        notes = "企业实名认证中，经办人所使用的认证类型（只有企业认证流程才会返回）\n" + "经办人实名认证场景：\n" + "INDIVIDUAL_TELECOM_3_FACTOR 个人运营商三要素\n"
            + "INDIVIDUAL_BANKCARD_4_FACTOR 个人银行卡四要素\n" + "INDIVIDUAL_ARTIFICIAL 个人人工实名\n"
            + "FACEAUTH_ZMXY 个人人脸识别：支付宝刷脸\n" + "FACEAUTH_TECENT_CLOUD 个人人脸识别：微众刷脸\n" + "FACEAUTH_ESIGN 个人人脸识别：e 签宝刷脸\n"
            + "FACEAUTH_WE_CHAT_FACE 个人人脸识别：微信小程序刷脸\n" + "经办人意愿认证场景：\n" + "WILL_AUTHCODE 意愿短信验证码\n"
            + "WILL_FACEAUTH_ZMXY 意愿人脸识别：支付宝刷脸\n" + "WILL_FACEAUTH_TECENT_CLOUD 意愿人脸识别：微众刷脸\n"
            + "WILL_FACEAUTH_ESIGN 意愿人脸识别：e 签宝刷脸\n" + "WILL_FACEAUTH_WE_CHAT_FACE 意愿人脸识别：微信小程序刷脸")
    private String agentAuthType;

    @ApiModelProperty(value = "认证长链接，链接永久有效", notes = "认证长链接，链接永久有效")
    private String url;

    @ApiModelProperty(value = "认证短链接，有效期 30 天", notes = "认证短链接，有效期 30 天")
    private String shortlink;

    @ApiModelProperty(value = "企业组织基本信息", notes = "E签宝企业组织基本信息")
    private EsignOrganInfoDTO organInfo;

    @ApiModelProperty(value = "个人基本信息", notes = "E签宝个人基本信息")
    private EsignIndivInfoDTO indivInfo;

}
